Radial menu selection with gestures

ABSTRACT

Embodiments of the invention are generally related to graphical user interfaces (GUIs), and more specifically to selecting items from a radial menu. More specifically, embodiments of the invention provide a complex set of gestures which, when performed using a screen pointer, facilitate fast and accurate selection of radial menu items from a radial menu. The gestures may generally involve a first movement of the screen pointer to activate a desired radial menu item, and a second predefined movement of the screen pointer within a predefined selection zone to select the radial menu item.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention is generally related to graphical user interfaces(GUIs), and more specifically to selecting items in a radial menu.

2. Description of the Related Art

Most modern computers include applications that allow a user to interactwith the application while performing operations associated with theapplications. For example, an application may be configured to receivecommands from the user to display data, modify data, initiate aparticular task, and the like. In the past, user interaction withapplications was facilitated by a command line interface. The commandline interface allowed users to type predefined commands to interactwith an application. However, command line interfaces require users tomemorize large lists of commands to communicate with each application.

More recently, user interaction with applications has involved the useof graphical user interfaces, or GUIs. For example, most applicationstoday are configured to display a window including a menu bar on adisplay screen. The menu bar may include one or more pull down menusincluding lists of functions and commands that may be used to interactwith the application.

SUMMARY OF THE INVENTION

The present invention is generally related to graphical user interfaces(GUIs), and more specifically to selecting items in a radial menu.

One embodiment of the invention provides a method for selecting a menuitem from a radial menu. The method generally comprises receiving apredefined screen pointer event, displaying the radial menu on a displayscreen in response to receiving the predefined screen pointer event, andreceiving a first stroke of the screen pointer, wherein the first strokeactivates at least a first menu item. The method further comprisesreceiving a predefined second stroke of the screen pointer, and inresponse to receiving the predefined second stroke, executing a functionassociated with the activated first menu item.

Another embodiment of the invention provides a computer readable storagemedium comprising a program product which, when executed by a processoris configured to perform an operation for selecting a menu item from aradial menu. The operation generally comprises receiving a predefinedscreen pointer event, displaying the radial menu on a display screen inresponse to receiving the predefined screen pointer event, and receivinga first stroke of the screen pointer, wherein the first stroke activatesat least a first menu item. The operation further comprises receiving apredefined second stroke of the screen pointer, and in response toreceiving the predefined second stroke, executing a function associatedwith the activated first menu item.

Yet another embodiment of the invention provides a system generallycomprising a memory comprising a program and a processor which, whenexecuting the program, is configured to receive a predefined screenpointer event, display a radial menu on a display screen in response toreceiving the predefined screen pointer event, and receive a firststroke of the screen pointer, wherein the first stroke activates a menuitem in the radial menu. The processor is further configured to receivea predefined second stroke of the screen pointer, and execute a functionassociated with the activated menu item in response to receiving thepredefined second stroke.

BRIEF DESCRIPTION OF THE DRAWINGS

So that the manner in which the above recited features, advantages andobjects of the present invention are attained and can be understood indetail, a more particular description of the invention, brieflysummarized above, may be had by reference to the embodiments thereofwhich are illustrated in the appended drawings.

It is to be noted, however, that the appended drawings illustrate onlytypical embodiments of this invention and are therefore not to beconsidered limiting of its scope, for the invention may admit to otherequally effective embodiments.

FIG. 1 illustrates a drop-down menu according to the prior art.

FIG. 2 illustrates an exemplary system according to an embodiment of theinvention.

FIG. 3 illustrates an exemplary radial menu according to an embodimentof the invention.

FIGS. 4A-4C illustrate further exemplary radial menus according toembodiments of the invention.

FIG. 5 illustrates an exemplary screen pointer event for displaying aradial menu, according to an embodiment of the invention.

FIG. 6 illustrates an exemplary stroke according to an embodiment of theinvention.

FIGS. 7A-7C illustrate exemplary strokes for selecting a radial menuitem, according to an embodiment of the invention.

FIG. 7D illustrates an overloaded radial menu according to an embodimentof the invention.

FIG. 7E illustrates an exemplary graphical user interface for defininggestures, according to an embodiment of the invention.

FIG. 8 illustrates an exemplary selection zone according to anembodiment of the invention.

FIG. 9 illustrates another exemplary selection zone according to anembodiment of the invention.

FIG. 10 is a flow diagram of exemplary operations performed by a menumanager, according to an embodiment of the invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Embodiments of the invention are generally related to graphical userinterfaces (GUIs), and more specifically to selecting items from aradial menu. More specifically, embodiments of the invention provide acomplex set of gestures which, when performed using a screen pointer,facilitate fast and accurate selection of radial menu items from aradial menu. The gestures may generally involve a first movement of thescreen pointer to activate a desired radial menu item, and a secondpredefined movement of the screen pointer to select the radial menuitem.

In the following, reference is made to embodiments of the invention.However, it should be understood that the invention is not limited tospecific described embodiments. Instead, any combination of thefollowing features and elements, whether related to differentembodiments or not, is contemplated to implement and practice theinvention. Furthermore, in various embodiments the invention providesnumerous advantages over the prior art. However, although embodiments ofthe invention may achieve advantages over other possible solutionsand/or over the prior art, whether or not a particular advantage isachieved by a given embodiment is not limiting of the invention. Thus,the following aspects, features, embodiments and advantages are merelyillustrative and are not considered elements or limitations of theappended claims except where explicitly recited in a claim(s). Likewise,reference to “the invention” shall not be construed as a generalizationof any inventive subject matter disclosed herein and shall not beconsidered to be an element or limitation of the appended claims exceptwhere explicitly recited in a claim(s).

One embodiment of the invention is implemented as a program product foruse with a computer system. The program(s) of the program productdefines functions of the embodiments (including the methods describedherein) and can be contained on a variety of computer-readable storagemedia. Illustrative computer-readable storage media include, but are notlimited to: (i) non-writable storage media (e.g., read-only memorydevices within a computer such as CD-ROM disks readable by a CD-ROMdrive) on which information is permanently stored; (ii) writable storagemedia (e.g., floppy disks within a diskette drive or hard-disk drive) onwhich alterable information is stored. Such computer-readable storagemedia, when carrying computer-readable instructions that direct thefunctions of the present invention, are embodiments of the presentinvention. Other media include communications media through whichinformation is conveyed to a computer, such as through a computer ortelephone network, including wireless communications networks. Thelatter embodiment specifically includes transmitting information to/fromthe Internet and other networks. Such communications media, whencarrying computer-readable instructions that direct the functions of thepresent invention, are embodiments of the present invention. Broadly,computer-readable storage media and communications media may be referredto herein as computer-readable media.

In general, the routines executed to implement the embodiments of theinvention, may be part of an operating system or a specific application,component, program, module, object, or sequence of instructions. Thecomputer program of the present invention typically is comprised of amultitude of instructions that will be translated by the native computerinto a machine-readable format and hence executable instructions. Also,programs are comprised of variables and data structures that eitherreside locally to the program or are found in memory or on storagedevices. In addition, various programs described hereinafter may beidentified based upon the application for which they are implemented ina specific embodiment of the invention. However, it should beappreciated that any particular program nomenclature that follows isused merely for convenience, and thus the invention should not belimited to use solely in any specific application identified and/orimplied by such nomenclature.

FIG. 1 illustrates an exemplary graphical user interface (GUI) 100according to the prior art. GUI 100 may be displayed on a displayscreen, such as, for example, a computer monitor to facilitatecommunication between a user and an application. The GUI 100 may includea menu bar 120 having a plurality of menus including, for example, theFile menu, Edit menu, View menu, Tools menu, and Help menu, asillustrated in FIG. 1. A particular menu may be selected from the menubar, for example, by clicking on a desired menu using a mouse. Each ofthe menus in the menu bar 120 are drop down menus. Therefore, when aparticular menu is selected, a list of items in the menu is displayed.

A particular item may be selected from a drop down menu by moving themouse pointer vertically up and down the list until the mouse pointer isabove a desired item. Selecting a menu item may include performing asecond mouse click to select the desired item. For example, a firstmouse click on a desired menu may display menu items in a drop downlist. A user may then move a mouse pointer vertically up and/or downuntil the mouse pointer is over a desired menu item. Once the mousepointer is above the desired menu item, a second click of the mouse mayresult in the selection of the menu item.

In some cases, a menu item may be a sub-menu. For example, the Send Toitem of the File Menu may be a sub-menu. Accordingly, as illustrated inFIG. 1, moving the mouse pointer over the Send To item may result is acascaded sub-menu 122 to be displayed. Each cascaded sub-menu may haveits own cascaded sub menu, which may result in several cascadedsub-menus being displayed before the desired item is selected.

However, menu bars and drop down menus are not efficient at allowing auser to quickly select a desired item. First, selecting a menu itemrequires at least two mouse clicks as described above. Second, in dropdown menus having a large number of items, the menu items may be closelyspaced, which may require the user to scan up and down along the menuseveral times before a desired item is found. Furthermore, drop downmenus with a large number of closely spaced items have an increasedprobability of erroneous selection of menu items.

The inefficiency of drop down menus may adversely affect users ofapplications where a fast response time is desired from the user whileinteracting with the applications. For example, in a gaming applicationa user's response time in responding to a particular circumstance in thegame may be critical to the user's performance in the game. As anexample, in a game where performance is determined by the user's abilityto defeat opponents in a fight, the ability of the user to detect andquickly attack opponents may be crucial to performing successfullycompleting the game.

Embodiments of the invention provide radial menus that allow users toquickly make selections of menu items using a set of predefinedgestures. The predefined gestures may include simple and/or complexgestures. The terms “simple” and “complex” as used herein are not meantto be limiting on the invention. Rather, the terms “simple” and“complex” are used to illustrate that a wide range of different gesturesmay be used to facilitate interaction between a user and a radial menu.

In one embodiment, a radial menu may be displayed on a display screen inresponse to detecting a predefined screen pointer event such as a mouseclick. Other screen pointer events may include touching the displayscreen with a finger or stylus pen, pressing one or more keys on akeyboard, receiving a voice command, and the like. Thereafter, a complexgesture may be made using the screen pointer to select the active radialmenu item.

FIG. 2 depicts a block diagram of a system 200 in which embodiments ofthe invention may be implemented. The system 200 may include a CentralProcessing Unit (CPU) 211 connected via a bus 220 to a memory 212,storage 216, an input device 217, an output device 218, and a networkinterface device 219. The input device 217 can be any device to giveinput to the system 200. For example, a keyboard, keypad, light-pen,touch-screen, track-ball, or speech recognition unit, audio/videoplayer, and the like could be used. The output device 218 can be anydevice to give output to the user, e.g., any conventional displayscreen. Although shown separately from the input device 217, the outputdevice 218 and input device 217 could be combined. For example, adisplay screen with an integrated touch-screen, a display with anintegrated keyboard, or a speech recognition unit combined with a textspeech converter could be used.

The network interface device 219 may be any entry/exit device configuredto allow network communications between the system 200 and one or moreother devices 291 via a network 290. For example, the network interfacedevice 119 may be a network adapter or other network interface card(NIC).

Storage 216 is preferably a Direct Access Storage Device (DASD).Although it is shown as a single unit, it could be a combination offixed and/or removable storage devices, such as fixed disc drives,floppy disc drives, tape drives, removable memory cards, or opticalstorage. The memory 212 and storage 216 could be part of one virtualaddress space spanning multiple primary and secondary storage devices.

The memory 212 is preferably a random access memory sufficiently largeto hold the necessary programming and data structures of the invention.While memory 212 is shown as a single entity, it should be understoodthat memory 212 may in fact comprise a plurality of modules, and thatmemory 212 may exist at multiple levels, from high speed registers andcaches to lower speed but larger DRAM chips.

Illustratively, the memory 212 contains an operating system 213.Illustrative operating systems, which may be used to advantage, includeLinux (Linux is a trademark of Linus Torvalds in the US, othercountries, or both) and Microsoft's Windows®. More generally, anyoperating system supporting the functions disclosed herein may be used.

Memory 212 may also include one or more applications 214. Theapplications 214 may be software products comprising a plurality ofinstructions that are resident at various times in memory and storagedevices in the computer system 200. When read and executed by one ormore CPU 211, the applications 214 may cause the computer system 200 toperform the steps necessary to execute steps or elements embodying thevarious aspects of the invention.

In one embodiment, the applications 214 may include a menu managerprogram 215, which may be configured to display a radial menu on theoutput device 218, and detect selection of one or more radial menuitems, as is discussed in greater detail below. In some embodiments theapplication program 214 and menu manager 215 may reside on a networkedcomputer device 291 and may be configured to manage radial menus on theoutput device 118 of computer system 200. The applications 214 may alsoinclude user preferences 221. The user preferences 221 may determine oneor more characteristics of radial menus, for example, the displaying ofradial menus, making selections from radial menus, and the like, as willbe discussed in greater detail below.

FIG. 3 illustrates an exemplary radial menu 300, according to anembodiment of the invention. In one embodiment, the radial menu 300 maybe displayed in an application window 100 by the menu manager 215, asillustrated in FIG. 3. However, in alternative embodiments, the menumanager 215 may be configured to display the radial menu 300 at anylocation on a screen, whether inside or outside a window.

In general, the radial menu 300 may include a center 310 and a pluralityof radial menu items 320 placed radially outwards from the center 310.For purposes of illustration, the radial menu 300 is assumed to beassociated with an image editing software. Accordingly, the radial menuitems 320 displayed in FIG. 3 include “Previous Image”, “Next Image”,“Annotate”, “Rotate Clockwise”, “Rotate Counterclockwise”, “Save”,“Exit”, and “Delete”. In a particular embodiment, the radial menu 300may include between 6 and 8 radial menu items, however, any reasonablenumber of radial menu items may be included in the radial menu 300 inother embodiments.

The radial menu items 320 may be selected by using a screen pointer suchas, for example, a mouse pointer, a stylus pen, trackball pointer, andthe like, as is described in greater detail below. Each of the radialmenu items 320 may be associated with commands and/or functions that maybe used to communicate with an application 114 associated with theradial menu 300. For example, the “Next Image” radial menu item, whenselected, may cause a new image to be displayed in an applicationcontent area 130 of window 100 in FIG. 3. As another example, the“Annotate” radial menu item, when selected, may launch a function thatmay allow a user to insert annotations for an image displayed in theapplication content area 130. In some embodiments, selecting a radialmenu item may result in a second or cascaded radial menu to bedisplayed.

In one embodiment of the invention, the radial menu items 320 may bedisplayed as a “pie slices” 320, as illustrated in FIG. 3. However, inalternative embodiments, the radial menu items may have any reasonableshape that allows a plurality of radial menu items 320 to be displayedradially outwards from the center 310. FIGS. 4A and 4B, illustrate somealternative shapes for the radial menu items 320. Furthermore, while acircular radial menu 300 is illustrated in FIG. 3, in alternativeembodiments, the radial menu 300 may be semicircular, quadra circular,or any other radial shape. For example, FIG. 4C illustrates asemicircular radial menu, according to an embodiment of the invention.

The radial menu 300 may be a pop-up menu that is displayed upon theoccurrence of a predefined screen pointer event. For example, in oneembodiment, the menu manager 215 may be configured to display the radialmenu 300 on a screen (for example, in window 100) upon detecting a mouseclick. In a particular embodiment, the radial menu 300 may be displayedwhen a right button of a mouse is clicked. While using mouse clicks todisplay radial menus is described herein, alternative screen pointerevents that may cause a radial menu to appear may include, for example,touching a screen with a stylus pen or finger, pressing one or more keyson a keyboard, receiving a voice command, and the like.

In one embodiment of the invention, the menu manager 215 may display theradial menu such that the center of the radial menu aligns with thescreen pointer. FIG. 5 illustrates a radial menu 300 displayed such thatthe center 310 of the radial menu 300 aligns with a location 520 of ascreen pointer 510. As illustrated in FIG. 5, the screen pointer may bea mouse pointer and the location 520 may be a location of the mousepointer when the mouse is clicked. Alternatively the location 520 may bethe location where a stylus pen or finger touches a display screen.

Selection of a radial menu item from a radial menu may involve movingthe screen pointer 510 in the direction of a desired radial menu item320. For example, to select the “Annotate” radial menu item, the screenpointer may be moved straight up (in a generally 90 degrees direction)towards the pie slice of the “Annotate” radial menu item. The moving ofthe screen pointer on the display screen is generally referred tohereinafter as a “stroke” or a gesture (the terms gesture and stroke areused interchangeably herein). In the case of a mouse pointer, strokesmay be performed by simply moving the mouse on a mouse pad. While usinga stylus pen or finger on a touch screen, the finger or stylus pen maysimply be dragged across the screen to perform a stroke.

The gestures used for selecting radial menu items may be selected from apredefined set of gestures. The predefined set of gestures may includeany combination of simple and/or complex predefined gestures. In otherwords, a wide range of different gestures may be defined to facilitateinteraction between a user and the radial menu. As an example, simplegestures may include movement of a screen pointer in a single direction.Complex gestures may include movement of a screen pointer in multipledirections. In one embodiment, performing the gestures may also includeother screen pointer events such as, for example, button click downs,button release, and the like. For example, in some embodiments, thegestures may be performed while a mouse button is clicked down.Alternatively, in other embodiments, the gestures may be performedbefore, after, or in between one or more screen pointer events such as,for example, in between mouse button click down and releases.

In one embodiment, placing the screen pointer over a radial menu item320 may cause the radial menu item to become active. When a radial menuitem 320 is active, the occurrence of a selection event, such as, forexample, a mouse click, may cause the radial menu item 320 to beselected. In one embodiment of the invention, the menu manager 215 maybe configured to provide a visual indication to identify an activeradial menu item.

FIG. 6 illustrates an exemplary stroke 610 which results in theactivation of a radial menu item, according to an embodiment of theinvention. As illustrated in FIG. 6, the stroke 610 moves the screenpointer over the “Annotate” radial menu item. As a result, the menumanager 215 may change the background color of the “Annotate” pie slice,which is indicated by the shading of the “Annotate” pie slice in FIG. 6.The change in color may identify the “Annotate” radial menu item as theactive item. Other methods for providing a visual indication such as,for example, bold facing the letters of the active radial menu item,dimming or fading the pie slices or letters of non-active radial menuitems, and the like, are also contemplated. While a straight line strokeis illustrated in FIG. 6, the stroke 610 may include any movement in anyand/or multiple directions on a display screen in alternativeembodiments.

In one embodiment, the center 310 of the radial menu 300 may be aninactive center. In other words, no radial menu items 320 may be activewhile the screen pointer 510 lies over the center portion 310.Therefore, when the menu manager 215 aligns the center 310 of the radialmenu when the radial menu is displayed as described above, no radialmenu items 320 may be initially active. Thereafter, user strokes maycause one or more radial menu items to become active. If the userstrokes return the screen pointer to the center 310, all radial menuitems may again become inactive.

One embodiment of the invention may allow radial menu items 320 to beselected using multiple gestures. In some embodiments, the gestures mayinclude one or more screen pointer events such as, for example, mouseclick downs (pressing a mouse button), mouse click offs (releasing themouse button), touching a screen with a stylus pen or finger, removingstylus pen or finger from the screen and the like. The menu manager 215may be configured to analyze gestures performed on a display screen todetermine whether a radial menu item is selected. In one embodiment, aplurality of predefined gestures may correspond to respective menu itemselections.

For example, exemplary gestures for selecting a radial menu item mayinclude performing a first mouse click, i.e., a mouse button click downand release. The first mouse click may display a radial menu, forexample, the radial menu 300 on the display screen. Thereafter, one ormore gestures may be performed to move the mouse pointer over a desiredradial menu item 320. As discussed above, menu manager 215 may provide avisual indication that the desired radial menu item is active. When themouse pointer is over the desired radial menu item, the mouse may beclicked a second time. Because the second mouse click occurred while themouse pointer is above a radial menu item 320, the menu manager maydetermine that a radial menu item selection has occurred. Therefore, themenu manager 215 may cause a command or function associated with theselected radial menu item to be executed.

In one embodiment of the invention, the gestures for selecting a radialmenu item may include a first mouse click (i.e., a mouse click down andrelease) that causes a radial menu to be displayed on the displayscreen, a first gesture configured to activate a radial menu item, and apredefined second gesture that is configured to select the radial menuitem. FIG. 7A illustrates exemplary first and second gestures accordingto an embodiment of the invention. As illustrated in FIG. 7A, a firstgesture 710 may move the screen pointer 510 from a center 310 of theradial menu to the “Annotate” radial menu item. Thereafter, a predefinedsecond gesture may be performed to select the “Annotate” radial menuitem. As illustrated in FIG. 7A, predefined second gesture may involvemoving the screen pointer in a zigzag back and forth motion over a samepath. If the predefined back and forth motion is detected by the menumanager while the screen pointer is over a radial menu item, the radialmenu item may be selected.

Any reasonable predefined movement of the screen pointer 510 may be usedas a radial menu selection event. FIG. 7B illustrates an alternativepredefined second motion that may result in the selection of a radialmenu item. As illustrated in FIG. 7B, a first gesture may move thescreen pointer 510 from a center 310 of the radial menu to the“Annotate” radial menu item. A predefined second gesture may move thescreen pointer back in a direction towards the center 310, which mayresult in the selection of the “Annotate” radial menu item. Stillanother alternative predefined second gestures may include substantiallycircular and/or semi-circular movement of the screen pointer over theradial menu item.

In another embodiment, the gestures for selecting a radial menu item mayinvolve a mouse button click down (without release), a first gesture foractivating a radial menu item, and a second predefined gesture forselecting the radial menu item. The mouse button may be released afterselection of the radial menu item. The mouse button click down may causea radial menu to be displayed. The first gesture and predefined secondgesture may function as described above.

In some embodiments, if a second predefined gesture is not receivedwithin a predefined period of time after activation of the radial menu,the menu manager 215 may be configured to close the radial menu. Closingthe radial menu may involve removing the radial menu from the displayscreen. In some embodiments, the predefined period of time may beginafter completion of the first gesture, e.g., after the screen pointerstops moving. For example, a screen pointer event may cause the radialmenu to be displayed. Thereafter, a first gesture may be completed toactivate a radial menu item. If the predefined second gesture is notreceived within the predefined period of time after completion of thefirst gesture, the radial menu may be closed by the menu manager 215.

In yet another embodiment, the menu manager 215 may select an activeradial menu item if the radial menu item has been active for apredefined period of time. Accordingly, the gesture for selecting aradial menu item may involve a mouse button click down (with or withoutrelease), and a first gesture for activating a radial menu item. Themouse button click down may cause a radial menu to be displayed. Thefirst stroke may function as described above to activate a radial menuitem. The menu manager 215 may monitor the time for which a particularradial menu item has been active, and select the radial menu item afterthe predefined period of time.

While the first gesture is illustrated as a straight line from thecenter 310 of the radial menu to a desired radial menu element 320, insome embodiments, the first gesture may include movement along any partof the display screen. For example, a user may initially move the screenpointer in the direction of a first radial menu item, but then decide tochoose a second radial menu item instead. Accordingly, the user may movethe screen pointer across the screen until the desired second radialmenu item is activated. Once the second radial menu item is activated,the user may perform the predefined second gesture to select the secondradial menu item.

FIG. 7C illustrates exemplary first and second gestures according toanother embodiment of the invention. As illustrated in FIG. 7C, thefirst gesture 710 may include an initial movement towards a first radialmenu item (“Annotate”). The first stroke 710 may continue to move acrossthe screen until a second radial menu item (“Delete”) is activated, asindicated by the shading. Thereafter, a predefined second gesture 720may be performed to select the second radial menu item. In someembodiments, the first gesture may include movement over multiple radialmenu items until a desired radial menu item is activated.

In one embodiment of the invention, gestures for selecting a radial menuitem may include a first mouse click (i.e., a mouse click down andrelease) that causes a radial menu to be displayed on the displayscreen, and a first gesture configured to activate and select the radialmenu item. The first gesture may activate a menu item 320 when the mousepointer is moved thereon. Furthermore, the menu manager 215 may beconfigured to analyze a speed of the screen pointer during the firststroke. If the speed exceeds (or falls below) a predefined thresholdvalue, the activated radial menu item may be selected. The thresholdspeed values may be user configurable in some embodiments. For example,the threshold speed values may be defined by a user in the userpreferences 221 (See FIG. 2).

In one embodiment of the invention, different gestures may be definedfor interacting with different parts of the radial menu. For example, inone embodiment, a first predefined stroke may be defined for selectingradial menu items located on a first side, for example, the right sideof the radial menu, and a second predefined stroke may be defined forselecting radial menu items located on a second side, for example, theleft side of the radial menu. In alternative embodiment, the same strokemay result in different results in different parts of the radial menu.For example, in one embodiment, a predefined stroke performed on a firstside of the radial menu may result in the activation of a radial menuitem. However, performing the same predefined stroke on a second side ofthe radial menu may result in a radial menu item being selected.

In one embodiment of the invention, each pie slice of the radial menumay be overloaded with two or more radial menu items. FIG. 7Dillustrates an exemplary radial menu 700 comprising a plurality of pieslices 730. As illustrated in FIG. 7D, each pie slice 730 may include afirst radial menu item 751 and a second radial menu item 752. In oneembodiment of the invention, a gesture for selecting a first radial menuitem 751 may include a first mouse click (i.e., a mouse click down withor without release) that causes a radial menu to be displayed on thedisplay screen, a first stroke configured to activate the first radialmenu item 751, and a corresponding second radial menu item 752, and apredefined second stroke configured to select the first radial menu item751. An exemplary predefined second stroke may include a stroke in aclockwise direction. A gesture for selecting a second radial menu item751 may include a first mouse click (i.e., a mouse click down with orwithout release) that causes a radial menu to be displayed on thedisplay screen, a first stroke configured to activate the second radialmenu item 752 and a corresponding first radial menu item 751, and apredefined third stroke configured to select the second radial menu item751. An exemplary predefined third stroke may include a stroke in thecounter-clockwise direction.

In one embodiment of the invention, a user may be allowed to define theparticular gestures for selecting items from a radial menu. For example,in one embodiment, the application 114 may be configured to display agraphical user interface that allows a user to define a gesture forselecting radial menu items. The user defined gesture may be stored inthe user preferences 221, in one embodiment. FIG. 7E illustrates anexemplary graphical user interface for defining a gesture for selectingradial menu items. As illustrated in FIG. 7E, the user preferences 221may include a first column for defining screen pointer movement (orstrokes), a second column 762 for defining mouse button input, and athird column 763 for defining an action performed based on the definedinputs in columns 761 and 762.

As illustrated in FIG. 7E, the GUI 760 may include a plurality of dropdown menus 767 for defining the particular inputs and the actionsperformed in response to the inputs. Alternatively, the GUI may includeradio buttons, text boxes, check boxes, and the like for defining theinputs and actions. In some embodiments, the GUI 760 may include ascreen where the input (for example, strokes and mouse clicks) may beperformed to define the inputs and/or actions.

The first row 764 defines an exemplary screen pointer event, i.e, rightmouse button click down, that results in a radial menu being displayed.Alternatively, a right mouse button click down and click off may also beselected as a predefined screen pointer event for displaying a radialmenu. As can be seen in row 764 of FIG. 7E, the no screen pointermovement has been defined. In alternative embodiments, the user maydefine a screen pointer movement for displaying the radial menu insteadof (or in addition to) the right button mouse click down.

Row 765 illustrates inputs for activating radial menu items. Asillustrated, radial menu items may be activated when the right mousebutton is held down and the screen pointer is moved in any direction asillustrated by the symbol in row 765, column 761. Alternatively, a usermay choose to select a straight line movement of the screen pointer forselecting radial menu items. Row 766 illustrates a predefined secondstroke, i.e., a circular stroke, for selecting a radial menu item. Row767 illustrates a mouse button click off. While no action is shown forthe mouse button click off on FIG. 7E, in some embodiments, the mousebutton click off may result in predefined action, for example, selectionof the radial menu item, removing of the radial menu from the displayscreen, or the like.

In one embodiment of the invention, it may be possible to select radialmenu items even though a selection event occurs outside the bounds ofthe radial menu. FIG. 8 illustrates an exemplary radial menu 300comprising a plurality of extra-territorial zones 810 ₁₋₈ associatedwith respective radial menu items 320. As shown in FIG. 8, the zones 810₁₋₈ may be outside the visible bounds of the radial menu 300. As shownin FIG. 8, the outside bounds of the radial menu 300 are demarcated by acircle 301. The circle 301 is merely illustrative. In other embodiments,any visible geometric shape 301 is contemplated. In one embodiment ofthe invention, if a screen pointer is in a zone 810, the radial menuitem 320 associated with the zone 810 may be active. Accordingly, if aselection event occurs in the zone 810, a selection of the radial menuitem associated with the zone 810 may occur. In other words, a pie sliceof the radial menu item 320 and a respective zone 810 may define aselection zone of a radial menu item within which gestures may beperformed for selection of the radial menu item.

For example, FIG. 8 illustrates a first stroke 810 which moves thescreen pointer 510 across the “Annotate” radial menu item pie slice andinto the zone 810 ₃ associated with the “Annotate” radial menu item. Ascan be seen in FIG. 8, the “Annotate” radial menu item remains activeeven though the screen pointer is outside the bounds of the radial menu300. Further as depicted in FIG. 8, a predefined second stroke 720 mayoccur in the zone 810 ₃ associated with the “Annotate” radial menu item.The menu manager 215 may detect the predefined second stroke in the zone810 ₃ and cause the respective “Annotate” radial menu item to beselected.

Allowing users to make elongated first strokes such as, for example, theelongated first stroke 710 in FIG. 8 may reduce errors in selection ofradial menu items. As can be seen in FIG. 8, the further the screenpointer is moved from the center 310 of the radial menu, the greater thearea that is available for making gestures such as, for example, thepredefined second gestures. By providing greater area for gestures, theprobability of gesture strokes accidently moving into zones 810 ofundesired radial menu items may be reduced.

Furthermore, activating radial menu items as a user performs a firststroke that is outside the bounds of the radial menu item may allowgreater precision in the activation of a desired radial menu item. Forexample, the further the screen pointer 510 is from the center 310, thegreater the radial distance that must be traveled by the screen pointer510 to a zone 810 of an adjacent radial menu item. One skilled in theart will appreciate that allowing a user to move the screen pointer in awider arcs around the radial menu allows increased precision inactivating desired radial menu items.

As illustrated in FIG. 8, in some embodiments the zones 810 may extendto the edges of a display area, for example, to the edges of a displayscreen, an application window, or the like. In an alternativeembodiment, a predefined limited selection zone may be defined outsidethe bounds of the radial menu for receiving selections of radial menuitems. FIG. 9 illustrates a circular perimeter 900 around the radialmenu 300 that defines a plurality of zones 910 ₁₋₈ for each of theradial menu items 320. In one embodiment, the perimeter may be madevisible to the user, for example, by displaying a solid line, dashedline, shading the zones 910, or the like. The perimeter 900 may have apredefined distance d from the center 310 of the radial menu 300. Forexample, the perimeter d may be defined by a user in the userpreferences 221 illustrated in FIG. 2. While a circular perimeter isshown herein, in alternative embodiments the perimeter 900 may have anyreasonable shape that encompasses the radial menu 300. The dimensions ofthe perimeter may be user configurable in some embodiments.

In one embodiment of the invention, a predefined second stroke asdescribed above, if performed within a zone 910, may result in theselection of a respective radial menu item 320. If a screen pointer ismoved outside the perimeter 900, all radial menu items 320 may becomeinactive. Therefore, if the predefined second stroke is performedoutside the perimeter 900, a radial menu item 320 may not be selected,thus creating a non-selective zone in the direction of a gesture if theuser changes his/her mind regarding selection.

In one embodiment of the invention, selecting a radial menu item 320 mayinvolve performing the first stroke followed by a predefined secondstroke as described above. The first stroke may include moving thescreen pointer in and out of the perimeter 900. An exemplary firststroke 710 is illustrated in FIG. 9. As illustrated, the first stroke710 may begin with a movement of the mouse pointer towards a firstradial menu item (“Previous Image”). As the screen pointer is movedacross the pie slice representing the first radial menu item and thezone 910 associated therewith, the menu manager 215 may activate thefirst radial menu item. However, when the screen pointer moves outsidethe perimeter 900, the first radial menu item may be deactivated by themenu manager 215.

As illustrated further in FIG. 9, the first stroke may continue to movethe screen pointer outside the perimeter 900 and reenter the perimeter900 in a zone 910 associated with a second radial menu item (“RotateCounterclockwise”). When the screen pointer enters the zone 910associated with the second radial menu item, the menu manager 215 mayactivate the second menu item. However, when the screen pointer movesoutside the perimeter 900 again, the second radial menu item may bedeactivated by the menu manager 215.

The screen pointer may be moved in and out of the perimeter 900 severaltimes as described above, which may result in the activation anddeactivation of several radial menu items. FIG. 9, depicts the firststroke terminating in a selection zone of a third radial menu item(“Exit”), thereby activating the third radial menu item as illustrated.A predefined second stroke 720 associated with the activated menu itemis also shown, which may result in the selection of the third radialmenu item. In a particular embodiment, the selection may occur upon therelease of a pressed mouse button.

In one embodiment of the invention, moving the screen pointer outsidethe perimeter 900 may result in the radial menu 300 being removed fromthe display screen. This may allow a user to cancel or remove the radialmenu from the screen in a fluid gesture without additional actions. Forexample, if a user causes a radial menu to be displayed on the screen(by clicking a mouse button for example), and decides that he no longerwants to make a selection from the radial menu, the user may simply makean elongated straight line first stroke that would take the screenpointer outside the predefined perimeter 900. Upon detecting that thescreen pointer is outside the perimeter 900, the menu manager 215 mayremove the radial menu from the display screen.

FIG. 10 is a flow diagram of exemplary operations that may be performedby a menu manager 215, according to an embodiment of the invention. Theoperations may begin in step 1010 by receiving a predefined screenpointer event. Exemplary predefined screen pointer events may include,for example, a mouse click down, touching of a touch screen with astylus pen or finger, and the like. In response to receiving thepredefined screen pointer event the menu manager 215 may display aradial menu on a display screen, in step 1020.

In step 1030, the menu manager 215 may receive a first stroke of thescreen pointer. As described above, the first stroke may include amovement of the screen pointer in any direction and/or multipledirections on the display screen. As the screen pointer moves across thescreen during the first stroke, the menu manager may determine whetherthe screen pointer is within a predefined selection zone of one or moreradial menu items of the radial menu in step 1040. The predefinedselection zone may include the pie slices 320 as illustrated in FIG. 3.In some embodiments, the predefined selection zone may also include thezones 910, as described with reference to FIG. 9.

If the screen pointer is determined to be outside the predefinedselection zone, all radial menu items may be deactivated in step 1050.On the other hand, if the screen pointer is within a predefinedselection, zone a radial menu item associated with the predefinedselection zone may be activated for selection in step 1060. In oneembodiment, activating a radial menu item for selection may involveproviding a visual indication that the radial menu item is active.

In step 1070, the menu manager 215 may receive a predefined secondstroke, for example, the predefined second strokes 720 described withreference to FIGS. 7A and 7B. In response to receiving the predefinedsecond stroke, the menu manager 215 may select a respective activeradial menu item in step 1080. In one embodiment, selecting the radialmenu item may involve launching execution of a command or functionassociated with the selected radial menu item.

In one embodiment of the invention, after selection of a radial menuitem, the menu manager 215 may remove the radial menu from the displayscreen. In a particular embodiment, after selection of a particularradial menu item, the radial menu may be removed from the display screenafter a predefined period of time. In some embodiments, the radial menumay fade away during the predefined period of time.

During the predefined period of time after selection of a radial menuitem during which the radial menu is displayed on the display screen,the user may be allowed to enter a predefined gesture to undo theselection in some embodiments of the invention. For example, in oneembodiment, as the radial menu is fading away during the predefined timeperiod, a predefined screen pointer event such as a mouse click, and/ora predefined stroke may undo the selection of the radial menu item.

By providing a radial menu where selections can be made with simple andquick gestures and strokes, embodiments of the invention facilitate fastselection of menu items in comparison to traditional drop down menus.

While the foregoing is directed to embodiments of the present invention,other and further embodiments of the invention may be devised withoutdeparting from the basic scope thereof, and the scope thereof isdetermined by the claims that follow.

1. A method for selecting a menu item from a radial menu, comprising:receiving a predefined screen pointer event; in response to receivingthe predefined screen pointer event, displaying the radial menu on adisplay screen; receiving a first gesture of the screen pointer, whereinthe first gesture activates at least a first menu item; receiving apredefined second gesture of the screen pointer from a set of availablegestures; and in response to receiving the predefined second gesture,executing a function associated with the activated first menu item. 2.The method of claim 1, wherein the first gesture activates a second menuitem, the method further comprising: receiving a predefined thirdgesture; and in response to receiving the predefined third gesture,executing a function associated with the activated second menu item. 3.The method of claim 1, further comprising: displaying the radial menufor a predefined period of time after receiving the predefined secondgesture; receiving a predefined fourth gesture during the predefinedperiod of time; in response to receiving the predefined fourth gesture,reversing execution of the function associated with the activated firstmenu item.
 4. The method of claim 1, wherein the display screen is amonitor and the screen pointer is a mouse pointer operated by one of amouse and a trackball.
 5. The method of claim 1, wherein the displayscreen is a touch screen and the screen pointer comprises one of astylus pen and a human finger.
 6. The method of claim 1, wherein thefirst gesture places the screen pointer over the menu item in the radialmenu.
 7. The method of claim 1, further comprising, providing a visualindication in the radial menu identifying the menu item as an activemenu time in response to receiving the first gesture.
 8. The method ofclaim 1, wherein the first gesture comprises moving the screen pointerin at least a first direction and the second gesture comprises movingthe screen pointer in at least a second direction different from thefirst direction.
 9. The method of claim 1, further comprising, closingthe radial menu in response to receiving the predefined second gesture.10. A computer readable storage medium comprising a program productwhich, when executed by a processor is configured to perform anoperation for selecting a menu item from a radial menu, the operationcomprising: receiving a predefined screen pointer event; in response toreceiving the predefined screen pointer event, displaying the radialmenu on a display screen; receiving a first gesture of the screenpointer, wherein the first gesture activates the menu item; receiving apredefined second gesture of the screen pointer from a set of availablegestures; and in response to receiving the predefined second gestureexecuting a function associated with the activated menu item.
 11. Thecomputer readable storage medium of claim 10, wherein the first gestureactivates a second menu item, the operation further comprising:receiving a predefined third gesture; and in response to receiving thepredefined third gesture, executing a function associated with theactivated second menu item.
 12. The computer readable storage medium ofclaim 10, wherein the display screen is a monitor and the screen pointeris a mouse pointer operated by one of a mouse and a trackball.
 13. Thecomputer readable storage medium of claim 10, wherein the display screenis a touch screen and the screen pointer comprises one of a stylus penand a human finger.
 14. The computer readable storage medium of claim10, wherein the first gesture places the screen pointer over the menuitem in the radial menu.
 15. The computer readable storage medium ofclaim 10, wherein the operation further comprises providing a visualindication in the radial menu identifying the menu item as an activemenu time in response to receiving the first gesture.
 16. The computerreadable storage medium of claim 10, wherein the first gesture comprisesmoving the screen pointer in at least a first direction and the secondgesture comprises moving the screen pointer in at least a seconddirection different from the first direction.
 17. The computer readablestorage medium of claim 10, further comprising, closing the radial menuin response to receiving the predefined second gesture.
 18. A system,comprising: a memory comprising a program; and a processor which, whenexecuting the program, is configured to: receive a predefined screenpointer event; in response to receiving the predefined screen pointerevent, display a radial menu on a display screen; receive a firstgesture of the screen pointer, wherein the first gesture activates amenu item in the radial menu; receive a predefined second gesture of thescreen pointer from a set of available gestures; and in response toreceiving the predefined second gesture, execute a function associatedwith the activated menu item.
 19. The system of claim 18, wherein thedisplay screen is a monitor and the screen pointer is a mouse pointeroperated by one of a mouse and a trackball.
 20. The system of claim 18,wherein the display screen is a touch screen and the screen pointercomprises one of a stylus pen and a human finger.
 21. The system ofclaim 18, wherein the first gesture places the screen pointer over themenu item in the radial menu.
 22. The system of claim 18, wherein theprocessor is further configured to provide a visual indication in theradial menu identifying the menu item as an active menu time in responseto receiving the first gesture.
 23. The system of claim 18, wherein thefirst gesture comprises moving the screen pointer in at least a firstdirection and the second gesture comprises moving the screen pointer inat least a second direction different from the first direction.